Auto Support & Resistance With Wick Signals & Percentage GapsThis auto support and resistance indicator uses percentage deviations from the previous session close to calculate levels. It provides arrows as signals when it detects 2 wicks in the last 5 bars from a support or resistance level. Includes alerts for price crossing any level as well as real time percentage gaps from current price to the next closest support and resistance level. You also have the option to set up to 3 major levels of your own for any levels that are very important on longer timeframes that you want included. Those will show on the chart as well as within your percentage gap table with color coded background. All features can be customized or turned off to suit your preferences.
SOURCE
This indicator uses the previous session close as a source by default but can be adjusted to use the previous session high or the previous session low. I find the close setting to provide the most accurate levels.
SESSION
The default setting for the previous session used is the daily session but can be adjusted to use the daily, weekly, monthly, quarterly or yearly session. Use longer sessions when looking at longer time frame charts.
SIGNALS
The signals by default are set to only show an arrow if there have been 2 bullish or bearish wicks off of a support or resistance level in the last 5 bars. This can be changed to one bullish wick off of support and one bearish wick off of resistance or it can be set to give a signal anytime a bar crosses a support or resistance level. This can be controlled in the indicator settings.
PERCENTAGE DEVIATION LEVELS
The default percentage deviation is set to 1% but can and should be adjusted according to whatever ticker you are using. For example use .25% or .5% when looking at forex intraday charts since they are not as volatile as other markets. For leveraged etfs used 1% multiplied by the leverage on the etf, so for SQQQ use 3% as it is a 3x leveraged etf. When looking at longer timeframes or highly volatile charts, set the percentage deviation to 2%, 5%, 10%, etc.
LINE COLORS
The color of the lines will change from red to green depending on if the price is above or below that level. You can customize these colors in the settings.
MAJOR LEVELS
If you have major levels of support and resistance from longer timeframes and your own charting, you can add up to 3 major levels that will show on the chart as well as show the percentage gaps in the table. The label for each major level will be colored to match the color of the line on the chart individually.
PERCENTAGE GAP TABLE
The gap table will update live with percentages to go from current price to the next closest support and resistance levels so you don’t have to calculate them manually. The position of the percentage gap table can also be changed within the indicator settings.
TURN FEATURES ON/OFF
There are 3 toggle switches so you can easily turn on or off certain features such as: the support and resistance lines, the percentage gaps table and the arrow signals.
LINE WIDTHS
You can also set the line width of all levels and the line width of the starting level within the indicator settings.
***MARKETS***
This indicator can be used as a signal on all markets, including stocks, crypto, futures and forex.
***TIMEFRAMES***
This automatic support and resistance indicator can be used on all timeframes as long as there is enough data for the session used.
***TIPS***
Try using numerous indicators of ours on your chart so you can instantly see the bullish or bearish trend of multiple indicators in real time without having to analyze the data. Some of our favorites are our Volume Spike Scanner, Volume Profile, Momentum and Trend Friend in combination with this auto support and resistance indicator. They all have real time Bullish and Bearish labels as well so you can immediately understand each indicator's trend.
在脚本中搜索" TABLE "
Volatility Adjusted Grid [Gann]█ OVERVIEW
Gann Square of 9 is one of the many brilliant concepts from W.D.Gann himself where it revolves around the idea that price is moving in a certain geometrical pattern. Numbers on the Square of 9 spiral tables, especially those lie in every 45degree in the chart act as key vibration levels where prices have tendency to react to (more on the table below).
There are few square of 9 related scripts here in Tradingview and while there's nothing wrong with them, it doesn't address 1 particular issue that i have: The numbers can be too rigid even when scaled based on current price because the levels are fixed, which makes them not tradable on certain timeframes depending on where the price currently sitting.
Heres 5min and 1hour Bitcoin chart to illustrate what i mean: Grey line on the left is based on Volatility Adjusted levels, while red/blue on the right are the standard Gann levels.
You can see that on 1hour chart, it provides a good levels (both Volatility Adjusted and the standard one happened to share the same multiplier in this case),
1Hour Chart:
On 5 min chart tells a different story as the range between blue/red levels can be deemed as to big for a short term trade, while the grey line is adjusted to suit that particular timeframe (You can still adjust to make it bigger/smaller from the settings, more on this below)
5Min Chart:
█ Little bit on Gann Square of 9 table
This is the square of nine table, the numbers highlighted in Red are known as Cardinal Cross and considered to be a major Support/Resistance while those in Blue color are known as Ordinal Cross considered as minor (but still important) Support/Resistance levels
Similarly, this script use these numbers (and certain multipliers) to print out the levels, with Cardinal numbers represented by solid lines and Ordinal numbers by dotted lines.
█ How it Works and Limitations
The Volatility Adjusted grid will go through several iterations of different multipliers to find the Gann number range that is at least bigger than times ATR. Because it's using ATR to determine the range, occasionally you'll notice that the line become smaller as ATR contracting (and vice versa). To overcome this, you can change the size range multiplier from the settings to retrieve the previous range size.
Use the size guide at the bottom left to find the multiplier that suits your need:
1st Row -> Previous Range -- Change Range Size to number lower than this to get a smaller range
2nd Row -> Next Range -- Change Range Size to number higher than this to get a larger range
Example:
Before:
After:
As you'll soon realise, the key here is to find the range that fits the historical structure and suits your own strategy. Enjoy :)
█ Disclaimer
Past performance is not an indicator of future results.
My opinions and research are my own and do not constitute financial advice in any way whatsoever.
Nothing published by me constitutes an investment recommendation, nor should any data or Content published by me be relied upon for any investment/trading activities.
I strongly recommends that you perform your own independent research and/or speak with a qualified investment professional before making any financial decisions.
Any ideas to further improve this indicator are welcome :)
Logging in Pine ScriptI'm building quite a lot of pretty complicated indicators/strategies in Pine Script. Quite often they don't work from the 1 try so I have to debug them heavily.
In Pine Script there are no fancy debuggers so you have to be creative. You can plot values on your screens, check them in the data window, etc.
If you want to display some textual information, you can plot some info as labels on the screen.
It's not the most convenient way, so with the appearance of tables in Pine Script, I decided to implement a custom logger that will allow me to track some useful information about my indicator over time.
Tables work much better for this kind of thing than labels. They're attached to your screen, you can nicely scale them and you can style them much better.
The idea behind it is very simple. I used few arrays to store the message, bar number, timestamp, and type of the message (you can color messages depend on the type for example).
There is a function log_msg that just append new messages to these arrays.
In the end, for the last bar, I create the table and display the last X messages in it.
In parameters, you can show/hide the entire journal, change the number of messages displayed and choose an offset. With offset, you can basically scroll through the history of messages.
Currently, I implemented 3 types of messages, and I color messages according to these types:
Message - gray
Warning - yellow
Error - red
Of course, it's a pretty simple example, you can create a much fancier way of styling your logs.
What do you think about it? Is it useful for you? What do you use to debug code in Pine Script?
Disclaimer
Please remember that past performance may not be indicative of future results.
Due to various factors, including changing market conditions, the strategy may no longer perform as good as in historical backtesting.
This post and the script don’t provide any financial advice.
Volatilidad Multi-TF📊 Multi-Timeframe Volatility (ATR%)
Description
Indicator that displays the current asset's volatility across multiple timeframes simultaneously. It uses the ATR (Average True Range) normalized as a percentage of price, allowing for objective volatility comparison across different timeframes.
✨ Key Features
- Multi-Timeframe Analysis: Visualize volatility across 5 different timeframes (1H, 4H, D, W, M)
- Normalized Volatility: ATR expressed as a percentage of price for accurate comparison
- Compact Table: Clean and easy-to-read interface in the corner of your chart
- Auto-Update: Automatically adapts to the asset you're viewing
- No Additional Plots: Only displays essential information in table format
🎯 How to Use
1. Add the indicator to your chart
2. The table will automatically display the current asset's volatility
3. Percentage values allow you to quickly identify:
- Which timeframe has higher/lower volatility
- Divergences between timeframes
- High or low volatility zones to adjust your strategies
⚙️ Configurable Parameters
- ATR Period: Default 14, adjust according to your strategy
📈 Practical Applications
- Risk Management: Adjust position sizing based on current volatility
- Asset Selection: Identify assets with suitable volatility for your profile
- Entry Timing: Detect volatility expansions/contractions
- Timeframe Analysis: Compare volatility across different time periods
💡 Technical Notes
- Normalized ATR allows volatility comparison between assets with different prices
- Useful for both intraday trading (1H, 4H) and swing/positional trading (D, W, M)
- Compatible with any market: cryptocurrencies, forex, stocks, indices
⚠️ Disclaimer
This indicator is a technical analysis tool. It does not constitute financial advice. Conduct your own analysis and risk management before trading.
Volume Delta Volume Signals by Claudio [hapharmonic]// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © hapharmonic
//@version=6
FV = format.volume
FP = format.percent
indicator('Volume Delta Volume Signals by Claudio ', format = FV, max_bars_back = 4999, max_labels_count = 500)
//------------------------------------------
// Settings |
//------------------------------------------
bool usecandle = input.bool(true, title = 'Volume on Candles',display=display.none)
color C_Up = input.color(#12cef8, title = 'Volume Buy', inline = ' ', group = 'Style')
color C_Down = input.color(#fe3f00, title = 'Volume Sell', inline = ' ', group = 'Style')
// ✅ Nueva entrada para colores de señales
color buySignalColor = input.color(color.new(color.green, 0), "Buy Signal Color", group = "Signals")
color sellSignalColor = input.color(color.new(color.red, 0), "Sell Signal Color", group = "Signals")
string P_ = input.string(position.top_right,"Position",options = ,
group = "Style",display=display.none)
string sL = input.string(size.small , 'Size Label', options = , group = 'Style',display=display.none)
string sT = input.string(size.normal, 'Size Table', options = , group = 'Style',display=display.none)
bool Label = input.bool(false, inline = 'l')
History = input.bool(true, inline = 'l')
// Inputs for EMA lengths and volume confirmation
bool MAV = input.bool(true, title = 'EMA', group = 'EMA')
string volumeOption = input.string('Use Volume Confirmation', title = 'Volume Option', options = , group = 'EMA',display=display.none)
bool useVolumeConfirmation = volumeOption == 'none' ? false : true
int emaFastLength = input(12, title = 'Fast EMA Length', group = 'EMA',display=display.none)
int emaSlowLength = input(26, title = 'Slow EMA Length', group = 'EMA',display=display.none)
int volumeConfirmationLength = input(6, title = 'Volume Confirmation Length', group = 'EMA',display=display.none)
string alert_freq = input.string(alert.freq_once_per_bar_close, title="Alert Frequency",
options= ,group = "EMA",
tooltip="If you choose once_per_bar, you will receive immediate notifications (but this may cause interference or indicator repainting).
\n However, if you choose once_per_bar_close, it will wait for the candle to confirm the signal before notifying.",display=display.none)
//------------------------------------------
// UDT_identifier |
//------------------------------------------
type OHLCV
float O = open
float H = high
float L = low
float C = close
float V = volume
type VolumeData
float buyVol
float sellVol
float pcBuy
float pcSell
bool isBuyGreater
float higherVol
float lowerVol
color higherCol
color lowerCol
//------------------------------------------
// Calculate volumes and percentages |
//------------------------------------------
calcVolumes(OHLCV ohlcv) =>
var VolumeData data = VolumeData.new()
data.buyVol := ohlcv.V * (ohlcv.C - ohlcv.L) / (ohlcv.H - ohlcv.L)
data.sellVol := ohlcv.V - data.buyVol
data.pcBuy := data.buyVol / ohlcv.V * 100
data.pcSell := 100 - data.pcBuy
data.isBuyGreater := data.buyVol > data.sellVol
data.higherVol := data.isBuyGreater ? data.buyVol : data.sellVol
data.lowerVol := data.isBuyGreater ? data.sellVol : data.buyVol
data.higherCol := data.isBuyGreater ? C_Up : C_Down
data.lowerCol := data.isBuyGreater ? C_Down : C_Up
data
//------------------------------------------
// Get volume data |
//------------------------------------------
ohlcv = OHLCV.new()
volData = calcVolumes(ohlcv)
// Plot volumes and create labels
plot(ohlcv.V, color=color.new(volData.higherCol, 90), style=plot.style_columns, title='Total',display = display.all - display.status_line)
plot(ohlcv.V, color=volData.higherCol, style=plot.style_stepline_diamond, title='Total2', linewidth = 2,display = display.pane)
plot(volData.higherVol, color=volData.higherCol, style=plot.style_columns, title='Higher Volume', display = display.all - display.status_line)
plot(volData.lowerVol , color=volData.lowerCol , style=plot.style_columns, title='Lower Volume',display = display.all - display.status_line)
S(D,F)=>str.tostring(D,F)
volStr = S(math.sign(ta.change(ohlcv.C)) * ohlcv.V, FV)
buyVolStr = S(volData.buyVol , FV )
sellVolStr = S(volData.sellVol , FV )
// ✅ MODIFICACIÓN: Porcentaje sin decimales
buyPercentStr = str.tostring(math.round(volData.pcBuy)) + " %"
sellPercentStr = str.tostring(math.round(volData.pcSell)) + " %"
totalbuyPercentC_ = volData.buyVol / (volData.buyVol + volData.sellVol) * 100
sup = not na(ohlcv.V)
if sup
TC = text.align_center
CW = color.white
var table tb = table.new(P_, 6, 6, bgcolor = na, frame_width = 2, frame_color = chart.fg_color, border_width = 1, border_color = CW)
tb.cell(0, 0, text = 'Volume Candles', text_color = #FFBF00, bgcolor = #0E2841, text_halign = TC, text_valign = TC, text_size = sT)
tb.merge_cells(0, 0, 5, 0)
tb.cell(0, 1, text = 'Current Volume', text_color = CW, bgcolor = #0B3040, text_halign = TC, text_valign = TC, text_size = sT)
tb.merge_cells(0, 1, 1, 1)
tb.cell(0, 2, text = 'Buy', text_color = #000000, bgcolor = #92D050, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(1, 2, text = 'Sell', text_color = #000000, bgcolor = #FF0000, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(0, 3, text = buyVolStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(1, 3, text = sellVolStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(0, 5, text = 'Net: ' + volStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
tb.merge_cells(0, 5, 1, 5)
tb.cell(0, 4, text = buyPercentStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(1, 4, text = sellPercentStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
cellCount = 20
filledCells = 0
for r = 5 to 1 by 1
for c = 2 to 5 by 1
if filledCells < cellCount * (totalbuyPercentC_ / 100)
tb.cell(c, r, text = '', bgcolor = C_Up)
else
tb.cell(c, r, text = '', bgcolor = C_Down)
filledCells := filledCells + 1
filledCells
if Label
sp = ' '
l = label.new(bar_index, ohlcv.V,
text=str.format('Net: {0}\nBuy: {1} ({2})\nSell: {3} ({4})\n{5}/\\\n {5}l\n {5}l',
volStr, buyVolStr, buyPercentStr, sellVolStr, sellPercentStr, sp),
style=label.style_none, textcolor=volData.higherCol, size=sL, textalign=text.align_left)
if not History
(l ).delete()
//------------------------------------------
// Draw volume levels on the candlesticks |
//------------------------------------------
float base = na,float value = na
bool uc = usecandle and sup
if volData.isBuyGreater
base := math.min(ohlcv.O, ohlcv.C)
value := base + math.abs(ohlcv.O - ohlcv.C) * (volData.pcBuy / 100)
else
base := math.max(ohlcv.O, ohlcv.C)
value := base - math.abs(ohlcv.O - ohlcv.C) * (volData.pcSell / 100)
barcolor(sup ? color.new(na, na) : ohlcv.C < ohlcv.O ? color.red : color.green,display = usecandle? display.all:display.none)
UseC = uc ? volData.higherCol:color.new(na, na)
plotcandle(uc?base:na, uc?base:na, uc?value:na, uc?value:na,
title='Body', color=UseC, bordercolor=na, wickcolor=UseC,
display = usecandle ? display.all - display.status_line : display.none, force_overlay=true,editable=false)
plotcandle(uc?ohlcv.O:na, uc?ohlcv.H:na, uc?ohlcv.L:na, uc?ohlcv.C:na,
title='Fill', color=color.new(UseC,80), bordercolor=UseC, wickcolor=UseC,
display = usecandle ? display.all - display.status_line : display.none, force_overlay=true,editable=false)
//------------------------------------------------------------
// Plot the EMA and filter out the noise with volume control. |
//------------------------------------------------------------
float emaFast = ta.ema(ohlcv.C, emaFastLength)
float emaSlow = ta.ema(ohlcv.C, emaSlowLength)
bool signal = emaFast > emaSlow
color c_signal = signal ? C_Up : C_Down
float volumeMA = ta.sma(ohlcv.V, volumeConfirmationLength)
bool crossover = ta.crossover(emaFast, emaSlow)
bool crossunder = ta.crossunder(emaFast, emaSlow)
isVolumeConfirmed(source, length, ma) =>
math.sum(source > ma ? source : 0, length) >= math.sum(source < ma ? source : 0, length)
bool ISV = isVolumeConfirmed(ohlcv.V, volumeConfirmationLength, volumeMA)
bool crossoverConfirmed = crossover and (not useVolumeConfirmation or ISV)
bool crossunderConfirmed = crossunder and (not useVolumeConfirmation or ISV)
PF = MAV ? emaFast : na
PS = MAV ? emaSlow : na
p1 = plot(PF, color = c_signal, editable = false, force_overlay = true, display = display.pane)
plot(PF, color = color.new(c_signal, 80), linewidth = 10, editable = false, force_overlay = true, display = display.pane)
plot(PF, color = color.new(c_signal, 90), linewidth = 20, editable = false, force_overlay = true, display = display.pane)
plot(PF, color = color.new(c_signal, 95), linewidth = 30, editable = false, force_overlay = true, display = display.pane)
plot(PF, color = color.new(c_signal, 98), linewidth = 45, editable = false, force_overlay = true, display = display.pane)
p2 = plot(PS, color = c_signal, editable = false, force_overlay = true, display = display.pane)
plot(PS, color = color.new(c_signal, 80), linewidth = 10, editable = false, force_overlay = true, display = display.pane)
plot(PS, color = color.new(c_signal, 90), linewidth = 20, editable = false, force_overlay = true, display = display.pane)
plot(PS, color = color.new(c_signal, 95), linewidth = 30, editable = false, force_overlay = true, display = display.pane)
plot(PS, color = color.new(c_signal, 98), linewidth = 45, editable = false, force_overlay = true, display = display.pane)
fill(p1, p2, top_value=crossover ? emaFast : emaSlow,
bottom_value =crossover ? emaSlow : emaFast,
top_color =color.new(c_signal, 80),
bottom_color =color.new(c_signal, 95)
)
// ✅ Usar colores configurables para señales
plotshape(crossoverConfirmed and MAV, style=shape.triangleup , location=location.belowbar, color=buySignalColor , size=size.small, force_overlay=true,display =display.pane)
plotshape(crossunderConfirmed and MAV, style=shape.triangledown, location=location.abovebar, color=sellSignalColor, size=size.small, force_overlay=true,display =display.pane)
string msg = '---------\n'+"Buy volume ="+buyVolStr+"\nBuy Percent = "+buyPercentStr+"\nSell volume = "+sellVolStr+"\nSell Percent = "+sellPercentStr+"\nNet = "+volStr+'\n---------'
if crossoverConfirmed
alert("Price (" + str.tostring(close) + ") Crossed over MA\n" + msg, alert_freq)
if crossunderConfirmed
alert("Price (" + str.tostring(close) + ") Crossed under MA\n" + msg, alert_freq)
BOCS Channel Scalper Strategy - Automated Mean Reversion System# BOCS Channel Scalper Strategy - Automated Mean Reversion System
## WHAT THIS STRATEGY DOES:
This is an automated mean reversion trading strategy that identifies consolidation channels through volatility analysis and executes scalp trades when price enters entry zones near channel boundaries. Unlike breakout strategies, this system assumes price will revert to the channel mean, taking profits as price bounces back from extremes. Position sizing is fully customizable with three methods: fixed contracts, percentage of equity, or fixed dollar amount. Stop losses are placed just outside channel boundaries with take profits calculated either as fixed points or as a percentage of channel range.
## KEY DIFFERENCE FROM ORIGINAL BOCS:
**This strategy is designed for traders seeking higher trade frequency.** The original BOCS indicator trades breakouts OUTSIDE channels, waiting for price to escape consolidation before entering. This scalper version trades mean reversion INSIDE channels, entering when price reaches channel extremes and betting on a bounce back to center. The result is significantly more trading opportunities:
- **Original BOCS**: 1-3 signals per channel (only on breakout)
- **Scalper Version**: 5-15+ signals per channel (every touch of entry zones)
- **Trade Style**: Mean reversion vs trend following
- **Hold Time**: Seconds to minutes vs minutes to hours
- **Best Markets**: Ranging/choppy conditions vs trending breakouts
This makes the scalper ideal for active day traders who want continuous opportunities within consolidation zones rather than waiting for breakout confirmation. However, increased trade frequency also means higher commission costs and requires tighter risk management.
## TECHNICAL METHODOLOGY:
### Price Normalization Process:
The strategy normalizes price data to create consistent volatility measurements across different instruments and price levels. It calculates the highest high and lowest low over a user-defined lookback period (default 100 bars). Current close price is normalized using: (close - lowest_low) / (highest_high - lowest_low), producing values between 0 and 1 for standardized volatility analysis.
### Volatility Detection:
A 14-period standard deviation is applied to the normalized price series to measure price deviation from the mean. Higher standard deviation values indicate volatility expansion; lower values indicate consolidation. The strategy uses ta.highestbars() and ta.lowestbars() to identify when volatility peaks and troughs occur over the detection period (default 14 bars).
### Channel Formation Logic:
When volatility crosses from a high level to a low level (ta.crossover(upper, lower)), a consolidation phase begins. The strategy tracks the highest and lowest prices during this period, which become the channel boundaries. Minimum duration of 10+ bars is required to filter out brief volatility spikes. Channels are rendered as box objects with defined upper and lower boundaries, with colored zones indicating entry areas.
### Entry Signal Generation:
The strategy uses immediate touch-based entry logic. Entry zones are defined as a percentage from channel edges (default 20%):
- **Long Entry Zone**: Bottom 20% of channel (bottomBound + channelRange × 0.2)
- **Short Entry Zone**: Top 20% of channel (topBound - channelRange × 0.2)
Long signals trigger when candle low touches or enters the long entry zone. Short signals trigger when candle high touches or enters the short entry zone. This captures mean reversion opportunities as price reaches channel extremes.
### Cooldown Filter:
An optional cooldown period (measured in bars) prevents signal spam by enforcing minimum spacing between consecutive signals. If cooldown is set to 3 bars, no new long signal will fire until 3 bars after the previous long signal. Long and short cooldowns are tracked independently, allowing both directions to signal within the same period.
### ATR Volatility Filter:
The strategy includes a multi-timeframe ATR filter to avoid trading during low-volatility conditions. Using request.security(), it fetches ATR values from a specified timeframe (e.g., 1-minute ATR while trading on 5-minute charts). The filter compares current ATR to a user-defined minimum threshold:
- If ATR ≥ threshold: Trading enabled
- If ATR < threshold: No signals fire
This prevents entries during dead zones where mean reversion is unreliable due to insufficient price movement.
### Take Profit Calculation:
Two TP methods are available:
**Fixed Points Mode**:
- Long TP = Entry + (TP_Ticks × syminfo.mintick)
- Short TP = Entry - (TP_Ticks × syminfo.mintick)
**Channel Percentage Mode**:
- Long TP = Entry + (ChannelRange × TP_Percent)
- Short TP = Entry - (ChannelRange × TP_Percent)
Default 50% targets the channel midline, a natural mean reversion target. Larger percentages aim for opposite channel edge.
### Stop Loss Placement:
Stop losses are placed just outside the channel boundary by a user-defined tick offset:
- Long SL = ChannelBottom - (SL_Offset_Ticks × syminfo.mintick)
- Short SL = ChannelTop + (SL_Offset_Ticks × syminfo.mintick)
This logic assumes channel breaks invalidate the mean reversion thesis. If price breaks through, the range is no longer valid and position exits.
### Trade Execution Logic:
When entry conditions are met (price in zone, cooldown satisfied, ATR filter passed, no existing position):
1. Calculate entry price at zone boundary
2. Calculate TP and SL based on selected method
3. Execute strategy.entry() with calculated position size
4. Place strategy.exit() with TP limit and SL stop orders
5. Update info table with active trade details
The strategy enforces one position at a time by checking strategy.position_size == 0 before entry.
### Channel Breakout Management:
Channels are removed when price closes more than 10 ticks outside boundaries. This tolerance prevents premature channel deletion from minor breaks or wicks, allowing the mean reversion setup to persist through small boundary violations.
### Position Sizing System:
Three methods calculate position size:
**Fixed Contracts**:
- Uses exact contract quantity specified in settings
- Best for futures traders (e.g., "trade 2 NQ contracts")
**Percentage of Equity**:
- position_size = (strategy.equity × equity_pct / 100) / close
- Dynamically scales with account growth
**Cash Amount**:
- position_size = cash_amount / close
- Maintains consistent dollar exposure regardless of price
## INPUT PARAMETERS:
### Position Sizing:
- **Position Size Type**: Choose Fixed Contracts, % of Equity, or Cash Amount
- **Number of Contracts**: Fixed quantity per trade (1-1000)
- **% of Equity**: Percentage of account to allocate (1-100%)
- **Cash Amount**: Dollar value per position ($100+)
### Channel Settings:
- **Nested Channels**: Allow multiple overlapping channels vs single channel
- **Normalization Length**: Lookback for high/low calculation (1-500, default 100)
- **Box Detection Length**: Period for volatility detection (1-100, default 14)
### Scalping Settings:
- **Enable Long Scalps**: Toggle long entries on/off
- **Enable Short Scalps**: Toggle short entries on/off
- **Entry Zone % from Edge**: Size of entry zone (5-50%, default 20%)
- **SL Offset (Ticks)**: Distance beyond channel for stop (1+, default 5)
- **Cooldown Period (Bars)**: Minimum spacing between signals (0 = no cooldown)
### ATR Filter:
- **Enable ATR Filter**: Toggle volatility filter on/off
- **ATR Timeframe**: Source timeframe for ATR (1, 5, 15, 60 min, etc.)
- **ATR Length**: Smoothing period (1-100, default 14)
- **Min ATR Value**: Threshold for trade enablement (0.1+, default 10.0)
### Take Profit Settings:
- **TP Method**: Choose Fixed Points or % of Channel
- **TP Fixed (Ticks)**: Static distance in ticks (1+, default 30)
- **TP % of Channel**: Dynamic target as channel percentage (10-100%, default 50%)
### Appearance:
- **Show Entry Zones**: Toggle zone labels on channels
- **Show Info Table**: Display real-time strategy status
- **Table Position**: Corner placement (Top Left/Right, Bottom Left/Right)
- **Color Settings**: Customize long/short/TP/SL colors
## VISUAL INDICATORS:
- **Channel boxes** with semi-transparent fill showing consolidation zones
- **Colored entry zones** labeled "LONG ZONE ▲" and "SHORT ZONE ▼"
- **Entry signal arrows** below/above bars marking long/short entries
- **Active TP/SL lines** with emoji labels (⊕ Entry, 🎯 TP, 🛑 SL)
- **Info table** showing position status, channel state, last signal, entry/TP/SL prices, and ATR status
## HOW TO USE:
### For 1-3 Minute Scalping (NQ/ES):
- ATR Timeframe: "1" (1-minute)
- ATR Min Value: 10.0 (for NQ), adjust per instrument
- Entry Zone %: 20-25%
- TP Method: Fixed Points, 20-40 ticks
- SL Offset: 5-10 ticks
- Cooldown: 2-3 bars
- Position Size: 1-2 contracts
### For 5-15 Minute Day Trading:
- ATR Timeframe: "5" or match chart
- ATR Min Value: Adjust to instrument (test 8-15 for NQ)
- Entry Zone %: 20-30%
- TP Method: % of Channel, 40-60%
- SL Offset: 5-10 ticks
- Cooldown: 3-5 bars
- Position Size: Fixed contracts or 5-10% equity
### For 30-60 Minute Swing Scalping:
- ATR Timeframe: "15" or "30"
- ATR Min Value: Lower threshold for broader market
- Entry Zone %: 25-35%
- TP Method: % of Channel, 50-70%
- SL Offset: 10-15 ticks
- Cooldown: 5+ bars or disable
- Position Size: % of equity recommended
## BACKTEST CONSIDERATIONS:
- Strategy performs best in ranging, mean-reverting markets
- Strong trending markets produce more stop losses as price breaks channels
- ATR filter significantly reduces trade count but improves quality during low volatility
- Cooldown period trades signal quantity for signal quality
- Commission and slippage materially impact sub-5-minute timeframe performance
- Shorter timeframes require tighter entry zones (15-20%) to catch quick reversions
- % of Channel TP adapts better to varying channel sizes than fixed points
- Fixed contract sizing recommended for consistent risk per trade in futures
**Backtesting Parameters Used**: This strategy was developed and tested using realistic commission and slippage values to provide accurate performance expectations. Recommended settings: Commission of $1.40 per side (typical for NQ futures through discount brokers), slippage of 2 ticks to account for execution delays on fast-moving scalp entries. These values reflect real-world trading costs that active scalpers will encounter. Backtest results without proper cost simulation will significantly overstate profitability.
## COMPATIBLE MARKETS:
Works on any instrument with price data including stock indices (NQ, ES, YM, RTY), individual stocks, forex pairs (EUR/USD, GBP/USD), cryptocurrency (BTC, ETH), and commodities. Volume-based features require data feed with volume information but are optional for core functionality.
## KNOWN LIMITATIONS:
- Immediate touch entry can fire multiple times in choppy zones without adequate cooldown
- Channel deletion at 10-tick breaks may be too aggressive or lenient depending on instrument tick size
- ATR filter from lower timeframes requires higher-tier TradingView subscription (request.security limitation)
- Mean reversion logic fails in strong breakout scenarios leading to stop loss hits
- Position sizing via % of equity or cash amount calculates based on close price, may differ from actual fill price
- No partial closing capability - full position exits at TP or SL only
- Strategy does not account for gap openings or overnight holds
## RISK DISCLOSURE:
Trading involves substantial risk of loss. Past performance does not guarantee future results. This strategy is for educational purposes and backtesting only. Mean reversion strategies can experience extended drawdowns during trending markets. Stop losses may not fill at intended levels during extreme volatility or gaps. Thoroughly test on historical data and paper trade before risking real capital. Use appropriate position sizing and never risk more than you can afford to lose. Consider consulting a licensed financial advisor before making trading decisions. Automated trading systems can malfunction - monitor all live positions actively.
## ACKNOWLEDGMENT & CREDITS:
This strategy is built upon the channel detection methodology created by **AlgoAlpha** in the "Smart Money Breakout Channels" indicator. Full credit and appreciation to AlgoAlpha for pioneering the normalized volatility approach to identifying consolidation patterns. The core channel formation logic using normalized price standard deviation is AlgoAlpha's original contribution to the TradingView community.
Enhancements to the original concept include: mean reversion entry logic (vs breakout), immediate touch-based signals, multi-timeframe ATR volatility filtering, flexible position sizing (fixed/percentage/cash), cooldown period filtering, dual TP methods (fixed points vs channel percentage), automated strategy execution with exit management, and real-time position monitoring table.
Complexity v3.2Complex Trend Analyzer v6.1 v3.2
Advanced multi-indicator trend analysis with dynamic timeframe adaptation!
Overview:
This sophisticated indicator combines multiple technical analysis tools for comprehensive trend analysis. It features EMA crossovers, RSI momentum, MACD signals, Bollinger Bands, volume analysis, divergence detection, and multi-timeframe analysis with dynamic parameter adaptation based on market volatility.
Key Features:
✅ Multi-Indicator Analysis - EMA, RSI, MACD, Bollinger Bands, Volume, ATR
✅ Divergence Detection - Bullish and bearish divergence with strength calculation
✅ Dynamic Timeframe Adaptation - Parameters adjust automatically based on timeframe
✅ Trend Tracking - Complete trend lifecycle with BUY/SELL/END signals
✅ Multi-Timeframe Analysis - M5, M15, M30 trend comparison
✅ Risk Management - Volatility filtering and warning system
✅ Visual Clarity - Clean labels, trend lines, and information table
How It Works:
The indicator uses a weighted scoring system:
• EMA (2.0) - Primary trend direction
• RSI (1.5) - Momentum confirmation
• MACD (1.5) - Trend momentum
• Bollinger Bands (1.0) - Volatility context
• Volume (1.0) - Volume confirmation
• Price Action (0.5 each) - Higher highs/lows
Signal Logic:
• BUY - Weighted score > threshold + filters passed
• SELL - Weighted score > threshold + filters passed
• END - Trend reversal conditions met
Visual Elements:
• 🟢 BUY - Green label with trend tracking
• 🔴 SELL - Red label with trend tracking
• ⚫ END - Gray label marking trend end
• × BUY - Green crosses for bullish divergence
• × SELL - Red crosses for bearish divergence
• ⚠️ - Warning signals for trend reversals
Information Table:
Real-time display showing:
• ATR volatility with signal (HIGH/MED/LOW/NORMAL VOL)
• Divergence status with strength percentage
• BUY/SELL signal count and overall signal
• Multi-Timeframe analysis (M5, M15, M30)
• Current trend with strength percentage
• Detailed trend strength analysis
Dynamic Adaptation:
Parameters automatically adjust based on timeframe:
• M1 - Fastest reaction (1.5-7.5 bars)
• M3 - Quick response (2-10 bars)
• M5 - Standard setting (3-15 bars)
• M15 - Slower, more reliable (4-20 bars)
Settings:
• EMA - Fast (9), Slow (21), Trend (50)
• RSI - Length (14), Overbought (70), Oversold (30)
• MACD - Fast (12), Slow (26), Signal (9)
• Bollinger Bands - Length (20), Multiplier (2.0)
• ATR - Length (14) for volatility measurement
• Volume Threshold - 1.5x average volume
Best Practices:
🎯 Works best in trending markets
📊 Use as overlay on main chart
⚡ Combine with price action analysis
🛡️ Always use proper risk management
🔍 Watch for divergence signals
⚠️ Pay attention to warning signals
Pro Tips:
• Green background = Strong uptrend, Red background = Strong downtrend
• Orange background = Risk zone (high volatility/RSI extremes)
• × marks indicate divergence opportunities
• ⚠️ warnings signal potential trend reversals
• Use multi-timeframe analysis for confirmation
• Monitor the information table for comprehensive market view
Alerts:
• BUY Alert - "BUY signal detected"
• SELL Alert - "SELL signal detected"
• Divergence Alert - "Divergence detected"
• Warning Alert - "Trend warning"
Version 3.2 Improvements:
• Enhanced multi-indicator analysis
• Improved divergence detection with strength calculation
• Advanced dynamic timeframe adaptation
• Comprehensive risk management system
• Professional visual presentation
• Weighted scoring system for better accuracy
Created with ❤️ for the trading community
This indicator is free to use for both commercial and non-commercial purposes.
cd_Quarterly_cycles_SSMT_TPD_CxGeneral
This indicator is designed in line with the Quarterly Theory to display each cycle on the chart, either boxed and/or in candlestick form.
Additionally, it performs inter-cycle divergence analysis ( SSMT ) with the correlated symbol, Terminus Price Divergence ( TPD ), Precision Swing Point ( PSP ) analysis, and potential Power of Three ( PO3 ) analysis.
Special thanks to @HandlesHandled for his great indicator, which I used while preparing the cycles content.
Details & Usage:
Optional cycles available: Weekly, Daily, 90m, and Micro cycles.
Displaying/removing cycles can be controlled from the menu (cycles / candles / labels).
All selected cycles can be shown, or you can limit the number of displayed cycles (min: 2, max: 4).
The summary table can be toggled on/off and repositioned.
What’s in the summary table?
• Below the header, the correlated symbol used in the analysis is displayed (e.g., SSMT → US500).
• If available, live and previous bar results of the SSMT analysis are shown.
• Under the PSP & TPD section, results are displayed when conditions are met.
• Under Alerts, the real-time status of conditions defined in the menu is shown.
• Under Potential AMD, possible PO3 analysis results are displayed.
Analysis & Symbol Selection:
To run analyses, a correlated symbol must first be defined with the main symbol.
Default pairs are preloaded (see below), but users should adjust them according to their exchange and instruments.
If no correlated pair is defined, cycles are displayed only as boxes/candles.
Once defined pairs are opened on the chart, analyses load automatically.
Pairs listed on the same row in the menu are automatically linked, so no need to re-enter them across rows.
SSMT Analysis:
Based on the chart’s timeframe, divergences are searched across Weekly, Daily, 90m, and Micro cycles.
The code will not produce results for smaller cycles than the current timeframe.
(Example: On H1, Micro cycles will not be displayed.)
Results are obtained by comparing the highs and lows of consecutive cycles in the same period.
If one pair makes a new high/low while the other does not, this divergence is added to SSMT results.
The difference from classic SMT is that cycles are used instead of bars.
PSP & TPD Analysis:
A correlated symbol must be defined.
For PSP, timeframe options are added to the menu.
Users toggle timeframes on/off by checking/unchecking boxes.
In selected timeframes, PSP & TPD analysis is performed.
• PSP: If candlesticks differ in color (bullish/bearish) between symbols and the bar is at a high/low of the timeframe (and higher/lower than the bars before/after it), it is identified as a PSP. Divergences between pairs are interpreted as potential reversal signals.
• TPD: Once a PSP occurs, the closing price of the previous bar and the opening price of the next bar are compared. If one symbol shows continuation while the other does not, it is marked as a divergence.
Example:
Let’s assume Pair 1 and Pair 2 are selected in the menu with the H4 timeframe, and our cycle is Weekly (Box).
For Pair 1, the H4 candle at the Weekly high level:
• Is positioned at the Weekly high,
• Its high is above both the previous and the next candle,
• It closed bearish (open > close).
For Pair 2, the same H4 candle closed bullish (close > open).
→ PSP conditions are met.
For TPD, we now check the candles before and after this PSP (H4) candle on both pairs.
Comparing the previous candle’s close with the next candle’s open, we see that:
• In Pair 1, the next open is lower than the previous close,
• In Pair 2, the next open is higher than the previous close.
Pair 1 → close > open
Pair 2 → close < open
Since they are not aligned in the same direction, this is interpreted as a divergence — a potential reversal signal.
While TPD results are displayed in the summary table, whenever the conditions are met in the selected timeframes, the signals are also plotted directly on the chart. (🚦, X)
• Higher timeframe TPD example:
• Current timeframe TPD example:
Alerts:
The indicator can be conditioned based on aligned timeframes defined within the concept.
Example (assuming random active rows in the screenshot):
• Weekly Bullish SSMT → Tf2 (menu-selected) Bullish TPD → Daily Bullish SSMT.
Selecting “none” in the menu means that condition is not required.
When an alert is triggered, it will be displayed in the corresponding row of the table.
• Example with only condition 3 enabled:
Potential PO3 Analysis:
According to Quarterly Theory, price moves in cycles, and the same structures are assumed to continue in smaller timeframes.
From classical PO3 knowledge: before the main move, price first manipulates in the opposite direction to trap buyers/sellers, then makes its true move.
The cyclical sequence is:
(A)ccumulation → (M)anipulation → (D)istribution → (R)eversal / Continuation.
Within cycle candles, the first letter of each phase is displayed.
So how does the analysis work?
If the active cycle is in (M)anipulation or (D)istribution phase, and it sweeps the previous cycle’s high or low but then pulls back inside, this is flagged in the summary table as a possible PO3 signal.
In other words, it reflects the alignment of theoretical sequence with real-time price action.
Confluence with SSMT and TPD conditions further strengthens the expectation.
Final Note:
No single marking or alert carries meaning on its own — it must always be evaluated in the context of your concept knowledge.
Instead of trading purely on expectations, align bias + trend + entry confirmations to improve your success rate.
Feedback and suggestions are welcome.
Happy trading!
KeyLevel - AOCKeyLevel - AOC
✨ Features📈 Session Levels: Tracks high, low, and open prices for Asian, London, and New York sessions.📅 Multi-Timeframe Levels: Plots previous day, week, month, quarter, and yearly open/high/low levels.⚙️ Preset Modes: Choose Scalp, Intraday, or Swing presets for tailored level displays.🎨 Customizable Visuals: Adjust colors, line styles, and label abbreviations for clarity.🖼️ Legend Table: Displays a color-coded legend for quick reference to session and period levels.🔧 Flexible Settings: Enable/disable specific sessions or levels and customize UTC offsets.
🛠️ How to Use
Add to Chart: Apply the "KeyLevel - AOC" indicator on TradingView.
Configure Inputs:
Preset: Select Scalp, Intraday, or Swing, or use custom settings.
Session Levels: Toggle Asian, London, NY sessions and their open/high/low lines.
Period Levels: Enable/disable previous day, week, month, quarter, or yearly levels.
Visuals: Adjust colors, line widths, and label abbreviations.
Legend: Show/hide the legend table for level identification.
Analyze: Monitor key levels for support/resistance and session-based price action.
Track Trends: Use levels to identify breakouts, reversals, or consolidation zones.
🎯 Why Use It?
Dynamic Levels: Tracks critical price levels across multiple timeframes for comprehensive analysis.
Session Focus: Highlights key session price points for intraday trading strategies.
Customizable: Tailor displayed levels and visuals to match your trading style.
User-Friendly: Clear lines, labels, and legend table simplify price level tracking.
📝 Notes
Ensure timeframe compatibility (e.g., avoid daily charts for session levels).
Use M5 or higher timeframes for accurate session tracking; some levels disabled on M5.
Combine with indicators like RSI or MACD for enhanced trading signals.
Adjust UTC offset if session times misalign with your broker’s timezone.
ORB Breakout Traffic Signal (5/15/30)ORB Breakout Traffic Signal (5/15/30)
This indicator visualizes Opening Range Breakouts (ORB) for the first 5, 15, and 30 minutes of the US regular trading session (09:30–16:00 ET).
It provides a compact, easy-to-read traffic signal table on your chart to show whether price is breaking out, breaking down, or consolidating inside the range.
🔑 Features
Auto-anchors at 09:30 ET (converted to your local time automatically).
Tracks ORB High/Low for:
5-minute window (09:30–09:34)
15-minute window (09:30–09:44)
30-minute window (09:30–09:59)
Displays results in a compact table:
↑ (green) → price has broken above the ORB high
↓ (red) → price has broken below the ORB low
• (gray) → price remains inside the ORB range (optional; can be disabled)
Customizable:
Toggle which ORBs to show (5m, 15m, 30m)
Choose table position (top/bottom left/right)
Adjustable text size
Option to plot the ORB High/Low lines on your chart
📌 Usage
Designed for intraday traders watching US equities/ETFs/futures.
Works best on 1-minute or 5-minute charts with Extended Hours turned OFF (so the session starts exactly at 09:30 ET).
Helps you quickly spot early breakouts (5m), mid-session trends (15m), or confirmed directional moves (30m).
⚠️ Notes
Signals only update during the RTH session
Outside market hours, the last locked ORB and signal remain displayed until the next open.
This tool is for analysis/visualization only; not a buy/sell signal. Always combine with your own trading strategy and risk management.
👉 Perfect for traders who want a quick visual confirmation of whether price is breaking out of the opening range or stuck inside it.
Auto-Anchored MA with Deviation BandsAuto-Anchored MA with Deviation Bands
✨ Features
📈 Auto-Anchored MA: Calculates moving averages (EMA, SMA, EWMA, WMA, VWAP, TEMA) anchored to user-defined periods (Hour, Day, Week, etc.).📏 Deviation Bands: Plots upper/lower bands using Percentage or Standard Deviation modes for volatility analysis.⚙️ Customizable Timeframes: Choose anchor periods from Hour to Year for flexible trend analysis.🎨 Visuals: Displays MA and bands with gradient fills, customizable colors, and adjustable display bars.⏱️ Countdown Table: Shows bars since the last anchor for easy tracking.🛠️ Smoothing: Applies smoothing to bands for cleaner visuals.
🛠️ How to Use
Add to Chart: Apply the indicator on TradingView.
Configure Inputs:
Anchor Settings: Select anchor period (e.g., Day, Week).
MA Settings: Choose MA type (e.g., VWAP, TEMA).
Deviation Settings: Set deviation mode (Percentage/Std Dev) and multipliers.
Display Settings: Adjust bars to display, colors, and gradient fill.
Analyze: View MA, deviation bands, and countdown table on the chart.
Track Trends: Use bands as dynamic support/resistance and monitor anchor resets.
🎯 Why Use It?
Dynamic Analysis: Auto-anchors MA to key timeframes for adaptive trend tracking.
Volatility Insight: Deviation bands highlight potential breakouts or reversals.
Customizable: Tailor MA type, timeframe, and visuals to your trading style.
User-Friendly: Clear visuals and countdown table simplify analysis.
📝 Notes
Ensure sufficient bars for accurate MA and deviation calculations.
Gradient fill enhances readability but can be disabled for simplicity.
Best used with complementary indicators like RSI or Bollinger Bands for robust strategies.
Happy trading! 🚀📈
ATR Extension from Moving Average, with Robust Sigma Bands
# ATR Extension from Moving Average, with Robust Sigma Bands
**What it does**
This indicator measures how far price is from a selected moving average, expressed in **ATR multiples**, then overlays **robust sigma bands** around the long run central tendency of that extension. Positive values mean price is extended above the MA, negative values mean price is extended below the MA. The signal adapts to volatility through ATR, which makes comparisons consistent across symbols and regimes.
**Why it can help**
* Normalizes distance to an MA by ATR, which controls for changing volatility
* Uses the **bar’s extreme** against the MA, not just the close, so it captures true stretch
* Computes a **median** and **standard deviation** of the extension over a multi-year window, which yields simple, intuitive bands for trend and mean-reversion decisions
---
## Inputs
* **MA length**: default 50, options 200, 64, 50, 20, 9, 4, 3
* **MA timeframe**: Daily or Weekly. The MA is computed on the chosen higher timeframe through `request.security`.
* **MA type**: EMA or SMA
* **Years lookback**: 1 to 10 years, default 5. This sets the sample for the median and sigma calculation, `years * 365` bars.
* **Line width**: visual width of the plotted extension series
* **Table**: optional on-chart table that displays the current long run **median** and **sigma** of the extension, with selectable text size
**Fixed parameters in this release**
* **ATR length**: 20 on the daily timeframe
* **ATR type**: classic ATR. ADR percent is not enabled in this version.
---
## Plots and colors
* **Main plot**: “Extension from 50d EMA” by default. Value is in **ATR multiples**.
* **Reference lines**:
* `median` line, black dashed
* +2σ orange, +3σ red
* −2σ blue, −3σ green
---
## How it is calculated
1. **Moving average** on the selected higher timeframe: EMA or SMA of `close`.
2. **Extreme-based distance** from MA, as a percent of price:
* If `close > MA`, use `(high − MA) / close * 100`
* Else, use `(low − MA) / close * 100`
3. **ATR percent** on the daily timeframe: `ATR(20) / close * 100`
4. **ATR multiples**: extension percent divided by ATR percent
5. **Robust center and spread** over the chosen lookback window:
* Center: **median** of the ATR-multiple series
* Spread: **standard deviation** of that series
* Bands: center ± 1σ, 2σ, 3σ, with 2σ and 3σ drawn
This design yields an intuitive unit scale. A value of **+2.0** means price is about 2 ATR above the selected MA by the most stretched side of the current bar. A value of **−3.0** means roughly 3 ATR below.
---
## Practical use
* **Trend continuation**
* Sustained readings near or above **+1σ** together with a rising MA often signal healthy momentum.
* **Mean reversion**
* Spikes into **±2σ** or **±3σ** can identify stretched conditions for fade setups in range or late-trend environments.
* **Regime awareness**
* The **median** moves slowly. When median drifts positive for many months, the market spends more time extended above the MA, which often marks bullish regimes. The opposite applies in bearish regimes.
**Notes**
* The MA can be set to Weekly while ATR remains Daily. This is deliberate, it keeps the normalization stable for most symbols.
* On very short intraday charts, the extension remains meaningful since it references the session’s extreme against a higher-timeframe MA and a daily ATR.
* Symbols with short histories may not fill the lookback window. Bands will adapt as data accrues.
---
## Table overlay
Enable **Table → Show** to see:
* “ATR from \”
* Current **median** and **sigma** of the extension series for your lookback
---
## Recommended settings
* **Swing equities**: 50 EMA on Daily, 5 to 7 years
* **Index trend work**: 200 EMA on Daily, 10 years
* **Position trading**: 20 or 50 EMA on Weekly MA, 5 to 10 years
---
## Interpretation examples
* Reading **+2.7** with price above a rising 50 EMA, near prior highs
* Strong trend extension, consider pyramiding in trend systems or waiting for a pullback if you are a mean-reverter.
* Reading **−2.2** into multi-month support with flattening MA
* Stretch to the downside that often mean-reverts, size entries based on your system rules.
---
## Credits
The concept of measuring stretch from a moving average in ATR units has a rich community history. This implementation and its presentation draw on ideas popularized by **Jeff Sun**, **SugarTrader**, and **Steve D Jacobs**. Thanks to each for their contributions to ATR-based extension thinking.
---
## License
This script and description are distributed under **MPL-2.0**, consistent with the header in the source code.
---
## Changelog
* **v1.0**: Initial public release. Daily ATR normalization, EMA or SMA on D or W timeframe, robust median and sigma bands, optional table.
---
## Disclaimer
This tool is for educational use only. It is not financial advice. Always test on your own data and strategies, then manage risk accordingly.
EMA Percentile Rank [SS]Hello!
Excited to release my EMA percentile Rank indicator!
What this indicator does
Plots an EMA and colors it by short-term trend.
When price crosses the EMA (up or down) and remains on that side for three subsequent bars, the cross is “confirmed.”
At the moment of the most recent cross, it anchors a reference price to the crossover point to ensure static price targets.
It measures the historical distance between price and the EMA over a lookback window, separately for bars above and below the EMA.
It computes percentile distances (25%, 50%, 85%, 95%, 99%) and draws target bands above/below the anchor.
Essentially what this indicator does, is it converts the raw “distance from EMA” behavior into probabilistic bands and historical hit rates you can use for targets, stop placement, or mean-reversion/continuation decisions.
Indicator Inputs
EMA length: Default is 21 but you can use any EMA you prefer.
Lookback: Default window is 500, this is length that the percentiles are calculated. You can increase or decrease it according to your preference and performance.
Show Accumulation Table: This allows you to see the table that shows the hits/price accumulation of each of the percentile ranges. UCL means upper confidence and LCL means lower confidence (so upper and lower targets).
About Percentiles
A percentile is a way of expressing the position of a value within a dataset relative to all the other values.
It tells you what percentage of the data points fall at or below that value.
For example:
The 25th percentile means 25% of the values are less than or equal to it.
The 50th percentile (also called the median) means half the values are below it and half are above.
The 99th percentile means only 1% of the values are higher.
Percentiles are useful because they turn raw measurements into context — showing how “extreme” or “typical” a value is compared to historical behavior.
In the EMA Percentile Rank indicator, this concept is applied to the distance between price and the EMA. By calculating percentile distances, the script can mark levels that have historically been reached often (low percentiles) or rarely (high percentiles), helping traders gauge whether current price action is stretched or within normal bounds.
Use Cases
The EMA Percentile Rank indicator is best suited for traders who want to quantify how far price has historically moved away from its EMA and use that context to guide decision-making.
One strong use case is target setting after trend shifts: when a confirmed crossover occurs, the percentile bands (25%, 50%, 85%, 95%, 99%) provide statistically grounded levels for scaling out profits or placing stops, based on how often price has historically reached those distances. This makes it valuable for traders who prefer data-driven risk/reward planning instead of arbitrary point targets. Another use case is identifying stretched conditions — if price rapidly tags the 95% or 99% band after a cross, that’s an unusually large move relative to history, which could signal exhaustion and prompt mean-reversion trades or protective actions.
Conversely, if the accumulation table shows price frequently resides in upper bands after bullish crosses, traders may anticipate continuation and hold positions longer . The indicator is also effective as a trend filter when combined with its EMA color-coding : only taking trades in the trend’s direction and using the bands as dynamic profit zones.
Additionally, it can support multi-timeframe confluence (if you align your chart to the timeframes of interest), where higher-timeframe trend direction aligns with lower-timeframe percentile behavior for higher-probability setups. Swing traders can use it to frame pullbacks — entering near lower percentile bands during an uptrend — while intraday traders might use it to fade extremes or ride breakouts past the median band. Because the anchor price resets only on EMA crosses, the indicator preserves a consistent reference for ongoing trades, which is especially helpful for managing swing positions through noise .
Overall, its strength lies in transforming raw EMA distance data into actionable, probability-weighted levels that adapt to the instrument’s own volatility and tendencies .
Summary
This indicator transforms a simple EMA into a distribution-aware framework: it learns how far price tends to travel relative to the EMA on either side, and turns those excursions into percentile bands and historical hit rates anchored to the most recent cross. That makes it a flexible tool for targets, stops, and regime filtering, and a transparent way to reason about “how stretched is stretched?”—with context from your chosen market and timeframe.
I hope you all enjoy!
And as always, safe trades!
Previous Day OHLC Dashboard (Last N Days)Indicator: Previous Day OHLC Dashboard (Multi-Day)
This indicator displays a dashboard-style table on your chart that shows the Open, High, Low, and Close (OHLC) of the previous trading days. It’s designed to help traders quickly reference key daily levels that often act as important support and resistance zones.
🔑 Features:
Dashboard Table: Shows OHLC data for the last N trading days (default = 3, up to 10).
Customizable Appearance:
Change the position of the dashboard (Top-Right, Top-Left, Bottom-Right, Bottom-Left).
Adjust text size (Tiny → Huge).
Customize colors for header, labels, and each OHLC column.
Yesterday’s OHLC Lines (optional): Plots horizontal lines on the chart for the previous day’s Open, High, Low, and Close.
Intraday & Multi-Timeframe Compatible: Works on all timeframes below Daily — values update automatically from the daily chart.
📊 Use Cases:
Quickly identify yesterday’s key levels for intraday trading.
Track how current price reacts to previous day’s support/resistance.
Keep a multi-day reference for trend bias and range context.
⚙️ How it Works:
The indicator pulls daily OHLC values using request.security() with lookahead_on to ensure prior day’s values are extended across the next session.
These values are displayed in a compact table for quick reference.
Optionally, the most recent daily levels (D-1) are plotted as chart lines.
✅ Perfect for day traders, scalpers, and swing traders who rely on yesterday’s price action to plan today’s trades.
Signal Hunter Pro - GKDXLSignal Hunter Pro - GKDXL combines four powerful technical indicators with trend strength filtering and volume confirmation to generate reliable BUY/SELL signals. This indicator is perfect for traders who want a systematic approach to market analysis without the noise of conflicting signals.
🔧 Core Features
📈 Multi-Indicator Signal System
Moving Averages: EMA 20, EMA 50, and SMA 200 for trend analysis
Bollinger Bands: Dynamic support/resistance with price momentum detection
RSI: Enhanced RSI logic with smoothing and multi-zone analysis
MACD: Traditional MACD with signal line crossovers and zero-line analysis
🎛️ Advanced Filtering System
ADX Trend Strength Filter: Only signals when trend strength exceeds threshold
Volume Confirmation: Ensures signals occur with adequate volume participation
Multi-Timeframe Logic: Works on any timeframe from 1m to 1D and beyond
🚨 Intelligent Signal Generation
Requires 3 out of 4 indicators to align for signal confirmation
Separate bullish and bearish signal conditions
Real-time signal strength scoring (1/4 to 4/4)
Built-in alert system for automated notifications
⚙️ Customizable Parameters
📊 Technical Settings
Moving Averages: Adjustable EMA and SMA periods
Bollinger Bands: Configurable length and multiplier
RSI: Customizable length, smoothing, and overbought/oversold levels
MACD: Flexible fast, slow, and signal line settings
🎯 Risk Management
Risk Percentage: Set your risk per trade (0.1% to 10%)
Reward Ratio: Configure risk-to-reward ratios (1:1 to 1:5)
ADX Threshold: Control minimum trend strength requirements
🖥️ Display Options
Indicator Visibility: Toggle individual indicators on/off
Information Table: Optional detailed status table (off by default)
Volume Analysis: Real-time volume vs. average comparison
🎨 Visual Elements
📈 Chart Indicators
EMA Lines: Blue (20) and Orange (50) exponential moving averages
SMA 200: Gray long-term trend line
Bollinger Bands: Upper/lower bands with semi-transparent fill
Clean Interface: Minimal visual clutter for clear analysis
📋 Information Table (Optional)
Real-time indicator status with ✓/✗/— symbols
Current signal strength and direction
ADX trend strength measurement
Volume confirmation status
No-signal reasons when conditions aren't met
🔔 Alert System
📢 Three Alert Types
BUY Signal: Triggered when 3+ indicators align bullishly
SELL Signal: Triggered when 3+ indicators align bearishly
General Alert: Any signal detection for broader monitoring
📱 Alert Messages
Clear, actionable alert text
Includes indicator name for easy identification
Compatible with webhook integrations
🎯 How It Works
📊 Signal Logic
Indicator Assessment: Each of the 4 indicators is evaluated as Bullish/Bearish/Neutral
Consensus Building: Counts aligned indicators (minimum 3 required)
Filter Application: Applies trend strength and volume filters
Signal Generation: Generates BUY/SELL when all conditions are met
🔍 Indicator States
Moving Averages: Price position, EMA alignment, and crossovers
Bollinger Bands: Price relative to bands and momentum shifts
RSI: Multi-zone analysis with momentum and crossover detection
MACD: Signal line crossovers and zero-line positioning
🎉 Why Choose Signal Hunter Pro?
✅ Multi-Indicator Confirmation reduces false signals
✅ Trend Strength Filtering improves win rate
✅ Volume Confirmation ensures market participation
✅ Customizable Parameters adapt to any trading style
✅ Clean Visual Design doesn't clutter your charts
✅ Professional Alert System for automated trading
✅ No Repainting - reliable historical signals
✅ Works on All Timeframes from scalping to investing
ATAI Volume Pressure Analyzer V 1.0 — Pure Up/DownATAI Volume Pressure Analyzer V 1.0 — Pure Up/Down
Overview
Volume is a foundational tool for understanding the supply–demand balance. Classic charts show only total volume and don’t tell us what portion came from buying (Up) versus selling (Down). The ATAI Volume Pressure Analyzer fills that gap. Built on Pine Script v6, it scans a lower timeframe to estimate Up/Down volume for each host‑timeframe candle, and presents “volume pressure” in a compact HUD table that’s comparable across symbols and timeframes.
1) Architecture & Global Settings
Global Period (P, bars)
A single global input P defines the computation window. All measures—host‑TF volume moving averages and the half‑window segment sums—use this length. Default: 55.
Timeframe Handling
The core of the indicator is estimating Up/Down volume using lower‑timeframe data. You can set a custom lower timeframe, or rely on auto‑selection:
◉ Second charts → 1S
◉ Intraday → 1 minute
◉ Daily → 5 minutes
◉ Otherwise → 60 minutes
Lower TFs give more precise estimates but shorter history; higher TFs approximate buy/sell splits but provide longer history. As a rule of thumb, scan thin symbols at 5–15m, and liquid symbols at 1m.
2) Up/Down Volume & Derived Series
The script uses TradingView’s library function tvta.requestUpAndDownVolume(lowerTf) to obtain three values:
◉ Up volume (buyers)
◉ Down volume (sellers)
◉ Delta (Up − Down)
From these we define:
◉ TF_buy = |Up volume|
◉ TF_sell = |Down volume|
◉ TF_tot = TF_buy + TF_sell
◉ TF_delta = TF_buy − TF_sell
A positive TF_delta indicates buyer dominance; a negative value indicates selling pressure. To smooth noise, simple moving averages of TF_buy and TF_sell are computed over P and used as baselines.
3) Key Performance Indicators (KPIs)
Half‑window segmentation
To track momentum shifts, the P‑bar window is split in half:
◉ C→B: the older half
◉ B→A: the newer half (toward the current bar)
For each half, the script sums buy, sell, and delta. Comparing the two halves reveals strengthening/weakening pressure. Example: if AtoB_delta < CtoB_delta, recent buying pressure has faded.
[ 4) HUD (Table) Display /i]
Colors & Appearance
Two main color inputs define the theme: a primary color and a negative color (used when Δ is negative). The panel background uses a translucent version of the primary color; borders use the solid primary color. Text defaults to the primary color and flips to the negative color when a block’s Δ is negative.
Layout
The HUD is a 4×5 table updated on the last bar of each candle:
◉ Row 1 (Meta): indicator name, P length, lower TF, host TF
◉ Row 2 (Host TF): current ↑Buy, ↓Sell, ΔDelta; plus Σ total and SMA(↑/↓)
◉ Row 3 (Segments): C→B and B→A blocks with ↑/↓/Δ
◉ Rows 4–5: reserved for advanced modules (Wings, α/β, OB/OS, Top
5) Advanced Modules
5.1 Wings
“Wings” visualize volume‑driven movement over C→B (left wing) and B→A (right wing) with top/bottom lines and a filled band. Slopes are ATR‑per‑bar normalized for cross‑symbol/TF comparability and converted to angles (degrees). Coloring mirrors HUD sign logic with a near‑zero threshold (default ~3°):
◉ Both lines rising → blue (bullish)
◉ Both falling → red (bearish)
◉ Mixed/near‑zero → gray
Left wing reflects the origin of the recent move; right wing reflects the current state.
5.2 α / β at Point B
We compute the oriented angle between the two wings at the midpoint B:
β is the bottom‑arc angle; α = 360° − β is the top‑arc angle.
◉ Large α (>180°) or small β (<180°) flags meaningful imbalance.
◉ Intuition: large α suggests potential selling pressure; small β implies fragile support. HUD cells highlight these conditions.
5.3 OB/OS Spike
OverBought/OverSold (OB/OS) labels appear when directional volume spikes align with a 7‑oscillator vote (RSI, Stoch, %R, CCI, MFI, DeMarker, StochRSI).
◉ OB label (red): unusually high sell volume + enough OB votes
◉ OS label (teal): unusually high buy volume + enough OS votes
Minimum votes and sync window are user‑configurable; dotted connectors can link labels to the candle wick.
5.4 Top3 Volume Peaks
Within the P window the script ranks the top three BUY peaks (B1–B3) and top three SELL peaks (S1–S3).
◉ B1 and S1 are drawn as horizontal resistance (at B1 High) and support (at S1 Low) zones with adjustable thickness (ticks/percent/ATR).
◉ The HUD dedicates six cells to show ↑/↓/Δ for each rank, and prints the exact High (B1) and Low (S1) inline in their cells.
6) Reading the HUD — A Quick Checklist
◉ Meta: Confirm P and both timeframes (host & lower).
◉ Host TF block: Compare current ↑/↓/Δ against their SMAs.
◉ Segments: Contrast C→B vs B→A deltas to gauge momentum change.
◉ Wings: Right‑wing color/angle = now; left wing = recent origin.
◉ α / β: Look for α > 180° or β < 180° as imbalance cues.
◉ OB/OS: Note labels, color (red/teal), and the vote count.
◉Top3: Keep B1 (resistance) and S1 (support) on your radar.
Use these together to sketch scenarios and invalidation levels; never rely on a single signal in isolation.
[ 7) Example Highlights (What the table conveys) /i]
◉ Row 1 shows the indicator name, the analysis length P (default 55), and both TFs used for computation and display.
◉ B1 / S1 blocks summarize each side’s peak within the window, with Δ indicating buyer/seller dominance at that peak and inline price (B1 High / S1 Low) for actionable levels.
◉ Angle cells for each wing report the top/bottom line angles vs. the horizontal, reflecting the directional posture.
◉ Ranks B2/B3 and S2/S3 extend context beyond the top peak on each side.
◉ α / β cells quantify the orientation gap at B; changes reflect shifting buyer/seller influence on trend strength.
Together these visuals often reveal whether the “wings” resemble a strong, upward‑tilted arm supported by buyer volume—but always corroborate with your broader toolkit
8) Practical Tips & Tuning
◉ Choose P by market structure. For daily charts, 34–89 bars often works well.
◉ Lower TF choice: Thin symbols → 5–15m; liquid symbols → 1m.
◉ Near‑zero angle: In noisy markets, consider 5–7° instead of 3°.
◉ OB/OS votes: Daily charts often work with 3–4 votes; lower TFs may prefer 4–5.
◉ Zone thickness: Tie B1/S1 zone thickness to ATR so it scales with volatility.
◉ Colors: Feel free to theme the primary/negative colors; keep Δ<0 mapped to the negative color for readability.
Combine with price action: Use this indicator alongside structure, trendlines, and other tools for stronger decisions.
Technical Notes
Pine Script v6.
◉ Up/Down split via TradingView/ta library call requestUpAndDownVolume(lowerTf).
◉ HUD‑first design; drawings for Wings/αβ/OBOS/Top3 align with the same sign/threshold logic used in the table.
Disclaimer: This indicator is provided solely for educational and analytical purposes. It does not constitute financial advice, nor is it a recommendation to buy or sell any security. Always conduct your own research and use multiple tools before making trading decisions.
ST-Stochastic DashboardST-Stochastic Dashboard: User Manual & Functionality
1. Introduction
The ST-Stochastic Dashboard is a comprehensive tool designed for traders who utilize the Stochastic Oscillator. It combines two key features into a single indicator:
A standard, fully customizable Stochastic Oscillator plotted directly on your chart.
A powerful Multi-Timeframe (MTF) Dashboard that shows the status of the Stochastic %K value across three different timeframes of your choice.
This allows you to analyze momentum on your current timeframe while simultaneously monitoring for confluence or divergence on higher or lower timeframes, all without leaving your chart.
Disclaimer: In accordance with TradingView's House Rules, this document describes the technical functionality of the indicator. It is not financial advice. The indicator provides data based on user-defined parameters; all trading decisions are the sole responsibility of the user. Past performance is not indicative of future results.
2. How It Works (Functionality)
The indicator is divided into two main components:
A. The Main Stochastic Indicator (Chart Pane)
This is the visual representation of the Stochastic Oscillator for the chart's current timeframe.
%K Line (Blue): This is the main line of the oscillator. It shows the current closing price in relation to the high-low range over a user-defined period. A high value means the price is closing near the top of its recent range; a low value means it's closing near the bottom.
%D Line (Black): This is the signal line, which is a moving average of the %K line. It is used to smooth out the %K line and generate trading signals.
Overbought Zone (Red Area): By default, this zone is above the 75 level. When the Stochastic lines are in this area, it indicates that the asset may be "overbought," meaning the price is trading near the peak of its recent price range.
Oversold Zone (Blue Area): By default, this zone is below the 25 level. When the Stochastic lines are in this area, it indicates that the asset may be "oversold," meaning the price is trading near the bottom of its recent price range.
Crossover Signals:
Buy Signal (Blue Up Triangle): A blue triangle appears below the candles when the %K line crosses above the Oversold line (e.g., from 24 to 26). This suggests a potential shift from bearish to bullish momentum.
Sell Signal (Red Down Triangle): A red triangle appears above the candles when the %K line crosses below the Overbought line (e.g., from 76 to 74). This suggests a potential shift from bullish to bearish momentum.
B. The Multi-Timeframe Dashboard (Table on Chart)
This is the informational table that appears on your chart. Its purpose is to give you a quick, at-a-glance summary of the Stochastic's condition on other timeframes.
Function: The script uses TradingView's request.security() function to pull the %K value from three other timeframes that you specify in the settings.
Efficiency: The table is designed to update only on the last (most recent) bar (barstate.islast) to ensure the script runs efficiently and does not slow down your chart.
Columns:
Timeframe: Displays the timeframe you have selected (e.g., '5', '15', '60').
Stoch %K: Shows the current numerical value of the %K line for that specific timeframe, rounded to two decimal places.
Status: Interprets the %K value and displays a clear status:
OVERBOUGHT (Red Background): The %K value is above the "Upper Line" setting.
OVERSOLD (Blue Background): The %K value is below the "Lower Line" setting.
NEUTRAL (Black/Dark Background): The %K value is between the Overbought and Oversold levels.
3. Settings / Parameters in Detail
You can access these settings by clicking the "Settings" (cogwheel) icon on the indicator name.
Stochastic Settings
This group controls the behavior and appearance of the main Stochastic indicator plotted in the pane.
Stochastic Period (length)
Description: This is the lookback period used to calculate the Stochastic Oscillator. It defines the number of past bars to consider for the high-low range.
Default: 9
%K Smoothing (smoothK)
Description: This is the moving average period used to smooth the raw Stochastic value, creating the %K line. A higher value results in a smoother, less sensitive line.
Default: 3
%D Smoothing (smoothD)
Description: This is the moving average period applied to the %K line to create the %D (signal) line. A higher value creates a smoother signal line that lags further behind the %K line.
Default: 6
Lower Line (Oversold) (ul)
Description: This sets the threshold for the oversold condition. When the %K line is below this value, the dashboard will show "OVERSOLD". It is also the level the %K line must cross above to trigger a Buy Signal triangle.
Default: 25
Upper Line (Overbought) (ll)
Description: This sets the threshold for the overbought condition. When the %K line is above this value, the dashboard will show "OVERBOUGHT". It is also the level the %K line must cross below to trigger a Sell Signal triangle.
Default: 75
Dashboard Settings
This group controls the data and appearance of the multi-timeframe table.
Timeframe 1 (tf1)
Description: The first timeframe to be displayed in the dashboard.
Default: 5 (5 minutes)
Timeframe 2 (tf2)
Description: The second timeframe to be displayed in the dashboard.
Default: 15 (15 minutes)
Timeframe 3 (tf3)
Description: The third timeframe to be displayed in the dashboard.
Default: 60 (1 hour)
Dashboard Position (table_pos)
Description: Allows you to select where the dashboard table will appear on your chart.
Options: top_right, top_left, bottom_right, bottom_left
Default: bottom_right
4. How to Use & Interpret
Configuration: Adjust the Stochastic Settings to match your trading strategy. The default values (9, 3, 6) are common, but feel free to experiment. Set the Dashboard Settings to the timeframes that are most relevant to your analysis (e.g., your entry timeframe, a medium-term timeframe, and a long-term trend timeframe).
Analysis with the Dashboard: The primary strength of this tool is confluence. Look for situations where multiple timeframes align. For example:
If the dashboard shows OVERSOLD on the 15-minute, 60-minute, and your current 5-minute chart, a subsequent Buy Signal on your 5-minute chart may carry more weight.
Conversely, if your 5-minute chart shows OVERSOLD but the 60-minute chart is strongly OVERBOUGHT, it could indicate that you are looking at a minor pullback in a larger downtrend.
Interpreting States:
Overbought is not an automatic "sell" signal. It simply means momentum has been strong to the upside, and the price is near its recent peak. It could signal a potential reversal, but the price can also remain overbought for extended periods in a strong uptrend.
Oversold is not an automatic "buy" signal. It means momentum has been strong to the downside. While it can signal a potential bounce, prices can remain oversold for a long time in a strong downtrend.
Use the signals and dashboard states as a source of information to complement your overall trading strategy, which should include other forms of analysis such as price action, support/resistance levels, or other indicators.
Guitar Hero [theUltimator5]The Guitar Hero indicator transforms traditional oscillator signals into a visually engaging, game-like display reminiscent of the popular Guitar Hero video game. Instead of standard line plots, this indicator presents oscillator values as colored segments or blocks, making it easier to quickly identify market conditions at a glance.
Choose from 8 different technical oscillators:
RSI (Relative Strength Index)
Stochastic %K
Stochastic %D
Williams %R
CCI (Commodity Channel Index)
MFI (Money Flow Index)
TSI (True Strength Index)
Ultimate Oscillator
Visual Display Modes
1) Boxes Mode : Creates distinct rectangular boxes for each bar, providing a clean, segmented appearance. (default)
This visual display is limited by the amount of box plots that TradingView allows on each indictor, so it will only plot a limited history. If you want to view a similar visual display that has minor breaks between boxes, then use the fill mode.
2) Fill Mode : Uses filled areas between plot boundaries.
Use this mode when you want to view the plots further back in history without the strict drawing limitations.
Five-Level Color-Coded System
The indicator normalizes all oscillator values to a 0-100 scale and categorizes them into five distinct levels:
Level 1 (Red): Very Oversold (0-19)
Level 2 (Orange): Oversold (20-29)
Level 3 (Yellow): Neutral (30-70)
Level 4 (Aqua): Overbought (71-80)
Level 5 (Lime): Very Overbought (81-100)
Customization Options
Signal Parameters
Signal Length: Primary period for oscillator calculation (default: 14)
Signal Length 2: Secondary period for Stochastic %D and TSI (default: 3)
Signal Length 3: Tertiary period for TSI calculation (default: 25)
Display Controls
Show Horizontal Reference Lines: Toggle grid lines for better level identification
Show Information Table: Display current signal type, value, and normalized value
Table Position: Choose from 9 different screen positions for the info table
Display Mode: Switch between Boxes and Fills visualization
Max Bars to Display: Control how many historical bars to show (50-450 range)
Normalization Process
The indicator automatically normalizes different oscillator ranges to a consistent 0-100 scale:
Williams %R: Converts from -100/0 range to 0-100
CCI: Maps typical -300/+300 range to 0-100
TSI: Transforms -100/+100 range to 0-100
Other oscillators: Already use 0-100 scale (RSI, Stochastic, MFI, Ultimate Oscillator)
This was designed as an educational tool
The gamified approach makes learning about oscillators more engaging for new traders.
VWAP Multi-TimeframeThis is a multi-timeframe VWAP indicator that provides volume weighted average price calculations for the following time periods:
15min
30min
1H
2H
4H
6H
8H
12H
1D
1W
1M
3M
6M
1Y
You can use the lower timeframes for short term trend control areas and use the longer timeframes for long term trend control areas. Trade in the direction of the trend and watch for price reactions that you can trade when price gets close to or touches any of these levels.
This indicator will provide a data plot value of 1 for bullish when price is above all VWAPs that are turned on, -1 for bearish when price is below all VWAPs that are turned on and 0 for neutral when price is not above or below all VWAPs. Use this 1, -1, 0 value as a filter on your signal generating indicators so that you can prevent signals from coming in unless they are in the same direction as the VWAP trend.
Features
Trend direction value of 1, -1 or 0 to send to external indicators so you can filter your signal generating indicators using the VWAP trend.
Trend table that shows you whether price is above or below all of the major VWAPs. This includes the daily, weekly, monthly and yearly VWAPs.
Trend coloring between each VWAP and the close price of each candle so you can easily identify the trend direction.
Customization
Set the source value to use for all of the VWAP calculations. The default is HLC3.
Turn on or off each VWAP.
Change the color of each VWAP line.
Change the thickness of each VWAP line.
Turn on or off labels for each VWAP or turn all labels on or off at once.
Change the offset length from the current bar to the label text.
Change the label text color.
Turn on or off trend coloring for each VWAP.
Change the color for up trends and down trends.
Turn on or off the trend direction display table.
Change the location of the trend direction display table.
Adjust the background and text colors on the trend direction display table.
How To Use The Trend Direction Filtering Feature
The indicator will provide a data plot value of 1 for bullish when price is above all of the VWAPs that are turned on, a value of -1 for bearish when price is below all of the VWAPS that are turned on and a value of 0 for neutral when price is above and below some of the VWAPs that are turned on.
The name of the value to use with your external indicators will show up as: VWAP Multi-Timeframe: Trend Direction To Send To External Indicators
Make sure to use that as your source on your external indicators to get the correct values.
This 1, -1 or 0 value can then be used by another external indicator to tell the indicator what is allowed to do. For instance if you have another indicator that provides buy and sell signals, you can use this trend direction value to prevent your other indicator from giving a sell signal when the VWAP trend is bullish or prevent your other indicator from giving a buy signal when the VWAP trend is bearish.
You will need to program your other indicators to use this trend filtering feature, but this indicator is already set up with this filtering code so you can use it with any other indicator that you choose to filter(if you know how to customize pine script).
Markets You Can Use This Indicator On
This indicator uses volume and price to calculate values, so it will work on any chart that provides volume and price data.
StratNinjaTableAuthor’s Instructions for StratNinjaTable
Purpose:
This indicator is designed to provide traders with a clear and dynamic table displaying The Strat candle patterns across multiple timeframes of your choice.
Usage:
Use the input panel to select which timeframes you want to monitor in the table.
Choose the table position on the chart (top left, center, right, or bottom).
The table will update each bar, showing the candle type, direction arrow, and remaining time until the candle closes for each selected timeframe.
Hover over or inspect the table to understand current market structure per timeframe using The Strat methodology.
Notes:
The Strat pattern is displayed as "1", "2U", "2D", or "3" based on the relationship of current and previous candle highs and lows.
The timer updates in real-time and adapts to daily, weekly, monthly, and extended timeframes.
This script requires Pine Script version 6. Please use it on supported platforms.
MFI or other indicators are not included in this base version but can be integrated separately if desired.
Credits:
Developed and inspired by shayy110 — thanks for your foundational work on The Strat in Pine Script.
Disclaimer:
This script is for educational and informational purposes only. Always verify signals and manage risk accordingly.
Time Window Optimizer [theUltimator5]The Time Window Optimizer is designed to identify the most profitable 30-minute trading windows during regular market hours (9:30 AM - 4:00 PM EST). This tool helps traders optimize their intraday strategies by automatically discovering time periods with the highest historical performance or allowing manual selection for custom analysis. It also allows you to select manual timeframes for custom time period analysis.
🏆 Automatic Window Discovery
The core feature of this indicator is its intelligent Auto-Find Best 30min Window system that analyzes all 13 possible 30-minute time slots during market hours.
How the Algorithm Works:
Concurrent Analysis: The indicator simultaneously tracks performance across all 13 time windows (9:30-10:00, 10:00-10:30, 10:30-11:00... through 15:30-16:00)
Daily Performance Tracking: For each window, it captures the percentage change from window open to window close on every trading day
Cumulative Compounding: Daily returns are compounded over time to show the true long-term performance of each window, starting from a normalized value of 1.0
Dynamic Optimization: The system continuously identifies the window with the highest cumulative return and highlights it as the optimal choice
Statistical Validation: Performance is validated through multiple metrics including average daily returns, win rates, and total sample size
Visual Representation:
Best Window Line: The top-performing window is displayed as a thick colored line for easy identification
All 13 Lines (optional): Users can view performance lines for all time windows simultaneously to compare relative performance
Smart Coloring: Lines are color-coded (green for gains, red for losses) with the best performer highlighted in a user-selected color
📊 Comprehensive Performance Analysis
The indicator provides detailed statistics in an information table:
Average Daily Return: Mean percentage change per trading session
Cumulative Return: Total compounded performance over the analysis period
Win Rate: Percentage of profitable days (colored green if ≥50%, red if <50%)
Buy & Hold Comparison: Shows outperformance vs. simple buy-and-hold strategy
Sample Size: Number of trading days analyzed for statistical significance
🛠️ User Settings
imgur.com
Auto-Optimization Controls:
Auto-Find Best Window: Toggle to enable/disable automatic optimization
Show All 13 Lines: Display all time window performance lines simultaneously
Best Window Line Color: Customize the color of the top-performing window
Manual Mode:
imgur.com
Custom Time Window: Set any desired time range using session format (HHMM-HHMM)
Crypto Support: Built-in timezone offset adjustment for cryptocurrency markets
Chart Type Options: Switch between candlestick and line chart visualization
Visual Customization:
imgur.com
Background Highlighting: Optional background color during active time windows
Candle Coloring: Custom colors for bullish/bearish candles within the time window
Table Positioning: Flexible placement of the statistics table anywhere on the chart
🔧 Technical Features
Market Compatibility:
Stock Markets: Optimized for traditional market hours (9:30 AM - 4:00 PM EST)
Cryptocurrency: Includes timezone offset adjustment for 24/7 crypto markets
Exchange Detection: Automatically detects crypto exchanges and applies appropriate settings
Performance Optimization:
Efficient Calculation: Uses separate arrays for each time block to minimize computational overhead
Real-time Updates: Dynamically updates the best-performing window as new data becomes available
Memory Management: Optimized data structures to handle large datasets efficiently
💡 Use Cases
Strategy Development: Identify the most profitable trading hours for your specific instruments
Risk Management: Focus trading activity during historically successful time periods
Performance Comparison: Evaluate whether time-specific strategies outperform buy-and-hold
Market Analysis: Understand intraday patterns and market behavior across different time windows
📈 Key Benefits
Data-Driven Decisions: Base trading schedules on historical performance data
Automated Analysis: No manual calculation required - the algorithm does the work
Flexible Implementation: Works in both automated discovery and manual selection modes
Comprehensive Metrics: Multiple performance indicators for thorough analysis
Visual Clarity: Clear, color-coded visualization makes interpretation intuitive
This indicator transforms complex intraday analysis into actionable insights, helping traders optimize their time allocation and improve overall trading performance through systematic, data-driven approach to market timing.
TOTAL3ES/ETH Mean ReversionTOTAL3ES/ETH Mean Reversion Indicator
Overview
The TOTAL3ES/ETH Mean Reversion indicator is a specialized tool designed exclusively for analyzing the ratio between TOTAL3 excluding stablecoins (TOTAL3ES) and Ethereum's market capitalization. This ratio provides crucial insights into the relative performance and valuation cycles between altcoins and ETH, making it an essential tool for cryptocurrency portfolio allocation and market timing decisions.
What This Indicator Measures
This indicator tracks the market cap ratio of all altcoins (excluding ETH and stablecoins) to Ethereum's market cap. When the ratio is:
Above 1.0 (Parity): Altcoins have a larger combined market cap than ETH
Below 1.0 (Parity): ETH's market cap exceeds the combined altcoin market cap
Key Features
Historical Context
Historical Range: 0.64 (July 2017 low) to 3.49 (all-time high)
Midpoint: 2.065 - the mathematical center of the historical range
Parity Line: 1.0 - the psychological level where altcoins = ETH market cap
Mean Reversion Zones
The indicator identifies extreme valuation zones based on historical data:
Upper Extreme Zone (~2.92 at 80% threshold): Suggests altcoins may be overvalued relative to ETH
Lower Extreme Zone (~1.21 at 80% threshold): Suggests altcoins may be undervalued relative to ETH
Visual Elements
Color-coded zones: Red shading for bearish reversion areas, green for bullish reversion areas
Multiple reference lines: Parity, midpoint, and historical extremes
Information table: Real-time metrics including current ratio, range position, and reversion pressure
Customizable display: Toggle zones, lines, and adjust transparency
How to Use This Indicator
Market Cycle Analysis
Extreme High Zone (Red): When ratio enters this zone, consider potential ETH outperformance
Extreme Low Zone (Green): When ratio enters this zone, consider potential altcoin season
Parity Crossovers: Monitor when ratio crosses above/below 1.0 for sentiment shifts
Portfolio Allocation Signals
High Ratio Values: May indicate overextended altcoin valuations relative to ETH
Low Ratio Values: May suggest undervalued altcoins relative to ETH
Midpoint Reversions: Historical tendency to revert toward the 2.065 midpoint
Alert Conditions
The indicator includes built-in alerts for:
Entering extreme high/low zones
Parity crossovers (above/below 1.0)
Mean reversion signals
Input Parameters
Display Settings
Show Reversion Zones: Toggle colored extreme zones on/off
Show Midpoint: Display the historical midpoint line
Show Parity Line: Show the 1.0 parity reference line
Zone Transparency: Adjust shaded area opacity (70-95%)
Calculation Settings
Reversion Strength Period: Moving average period for reversion calculations (10-50)
Extreme Threshold: Percentage of historical range defining extreme zones (0.5-1.0)
Information Table Metrics
The bottom-right table displays:
Current Ratio: Live TOTAL3ES/ETH value
Range Position: Current position within historical range (%)
From Parity: Distance from 1.0 parity level (%)
Reversion Pressure: Intensity of mean reversion forces (%)
Zone: Current market zone classification
Historical Range: Reference boundaries (0.64 - 3.49)
Midpoint: Historical center value
Important Notes
Chart Compatibility
Exclusively designed for CRYPTOCAP:TOTAL3ES/CRYPTOCAP:ETH
Built-in validation ensures proper chart usage
Will display error message if applied to incorrect charts
Trading Considerations
This is an analytical tool, not trading advice
Mean reversion is a tendency, not a guarantee
Consider multiple timeframes and confirmations
Factor in overall market conditions and trends
Risk Disclaimer
Past performance does not guarantee future results. Cryptocurrency markets are highly volatile and unpredictable. Always conduct your own research and consider your risk tolerance before making investment decisions.
Ideal Use Cases
Portfolio rebalancing between ETH and altcoins
Market cycle timing for position adjustments
Sentiment analysis of crypto market phases
Long-term allocation strategies based on historical patterns
Risk management through extreme zone identification
This indicator serves as a quantitative framework for understanding the cyclical relationship between Ethereum and the broader altcoin market, helping traders and investors make more informed allocation decisions based on historical valuation patterns.ons
- Factor in overall market conditions and trends
### Risk Disclaimer
Past performance does not guarantee future results. Cryptocurrency markets are highly volatile and unpredictable. Always conduct your own research and consider your risk tolerance before making investment decisions.
ACR(Average Candle Range) With TargetsWhat is ACR?
The Average Candle Range (ACR) is a custom volatility metric that calculates the mean distance between the high and low of a set number of past candles. ACR focuses only on the actual candle range (high - low) of specific past candles on a chosen timeframe.
This script calculates and visualizes the Average Candle Range (ACR) over a user-defined number of candles on a custom timeframe. It displays a table of recent range values, plots dynamic bullish and bearish target levels, and marks the start of each new candle with a vertical line. All calculations update in real time as price action develops. This script was inspired by the “ICT ADR Levels - Judas x Daily Range Meter°” by toodegrees.
Key Features
Custom Timeframe Selection: Choose any timeframe (e.g., 1D, 4H, 15m) for analysis.
User-Defined Lookback: Calculate the average range across 1 to 10 previous candles.
Dynamic Targets:
Bullish Target: Current candle low + ACR.
Bearish Target: Current candle high – ACR.
Live Updates: Targets adjust intrabar as highs or lows change during the current candle.
Candle Start Markers: Vertical lines denote the open of each new candle on the selected timeframe.
Floating Range Table:
Displays the current ACR value.
Lists individual ranges for the previous five candles.
Extend Target Lines: Choose to extend bullish and bearish target levels fully across the screen.
Global Visibility Controls: Toggle on/off all visual elements (targets, vertical lines, and table) for a cleaner view.
How It Works
At each new candle on the user-selected timeframe, the script:
Draws a vertical line at the candle’s open.
Recalculates the ACR based on the inputted previous number of candles.
Plots target levels using the current candle's developing high and low values.
Limitation
Once the price has already moved a full ACR in the opposite direction from your intended trade, the associated target loses its practical value. For example, if you intended to trade long but the bearish ACR target is hit first, the bullish target is no longer a reliable reference for that session.
Use Case
This tool is designed for traders who:
Want to visualize the average movement range of candles over time.
Use higher or lower timeframe candles as structural anchors.
Require real-time range-based price levels for intraday or swing decision-making.
This script does not generate entry or exit signals. Instead, it supports range awareness and target projection based on historical candle behavior.
Key Difference from Similar Tools
While this script was inspired by “ICT ADR Levels - Judas x Daily Range Meter°” by toodegrees, it introduces a major enhancement: the ability to customize the timeframe used for calculating the range. Most ADR or candle-range tools are locked to a single timeframe (e.g., daily), but this version gives traders full control over the analysis window. This makes it adaptable to a wide range of strategies, including intraday and swing trading, across any market or asset.